package cn.tedu.logistics.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import cn.tedu.logistics.bean.Goods;
import cn.tedu.logistics.bean.GoodsType;
import cn.tedu.logistics.dao.GoodsDao;
import cn.tedu.logistics.dao.GoodsTypeDao;

@Service
public class GoodsServiceImpl implements GoodsService {

	//商品类型
	@Autowired
	private GoodsTypeDao goodsTypeDao;
	
	//商品信息
	@Autowired
	private GoodsDao goodsDao;
	
	//查询全部商品类型记录
	@Override
	public List<GoodsType> findGoodsType() {
		QueryWrapper<GoodsType> queryWrapper = new QueryWrapper<GoodsType>();
		List<GoodsType> list = new ArrayList<GoodsType>();
		list = goodsTypeDao.selectList(queryWrapper);
		return list;
	}

	//添加商品类型记录
	@Override
	public void addGoodsType(GoodsType goodsType) {
		goodsTypeDao.insert(goodsType);
	}

	//根据id删除商品类型记录
	@Override
	public void delGoodsTypeById(Integer id) {
		goodsTypeDao.deleteById(id);
	}

	@Override
	public List<String> findGoodsIdByTypeId(Integer id) {
		GoodsType goodsType = goodsTypeDao.selectById(id);
		String type = goodsType.getGoodsType();
		List<String> list = goodsDao.findGoodsIdList(type);
		return list;
	}
	//根据id查询商品类型记录
//	@Override
//	public GoodsType findGoodsTypeById(Integer id) {
//		GoodsType goodsType = goodsTypeDao.selectById(id);
//		return goodsType;
//	}
	@Override
	public void delGoodsInfo(List<String> list) {
		goodsDao.deleteBatchIds(list);
	}
	//更新商品类型记录
	@Override
	public void updGoodsType(GoodsType goodsType) {
		goodsTypeDao.updateById(goodsType);
		
	}

	//查询全部商品信息记录
	@Override
	public List<Goods> findGoodsInfo() {
		QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
		List<Goods> list = new ArrayList<Goods>();
		list = goodsDao.selectList(queryWrapper);
		return list;
	}

	//根据id删除商品信息记录
	@Override
	public void delGoodsInfoById(Integer id) {
		goodsDao.deleteById(id);
	}

	//添加商品信息记录
	@Override
	public void addGoodsInfo(Goods goods) {
		goods.setCreateTime(new Date());
		goodsDao.insert(goods);
	}

	//根据id查询商品信息记录
	@Override
	public Goods findGoodsById(Integer id) {
		Goods goods = goodsDao.selectById(id);
		return goods;
	}

	//更新商品信息记录
	@Override
	public void updGoods(Goods goods) {
		goods.setUpdateTime(new Date());
		goodsDao.updateById(goods);
	}

	@Override
	public int checkGoodsType(Integer id) {
		ArrayList<Goods> list = new ArrayList<Goods>();
		list = goodsDao.findGoodsByTypeId(id);
		return (list == null || list.size() == 0) ? 0 : 1;
	}

	//根据id查询商品类型记录
	@Override
	public GoodsType findGoodsTypeById(Integer id) {
		GoodsType goodsType = goodsTypeDao.selectById(id);
		return goodsType;
	}




}
